package org.budo.phone.api;

/**
 * @author limingwei
 * @see org.budo.phone.api.BudoPhoneApi
 */
public interface BudoPhoneEvent {
    enum Type {
        /**
         * 呼叫鉴权，手动或半自动输入号码发起呼叫时会回调
         */
        CallAuth,

        /**
         * 呼叫建立
         */
        CallEstablish,

        /**
         * 挂机
         */
        Hangup,

        /**
         * 坐席状态变更 坐席在被锁定到挂机的过程中都会有状态改变
         * https://doc.yuntongxun.com/p/5a5348f23b8496dd00dce1c0
         */
        AgentState,

        /**
         * 被叫呼入
         */
        CallIn
    }

    Type getType();

    String getCallId();

    String getCaller();

    String getDestination();

    String getHeader(String key);
}